C-define-printlnf 函数重写
可以使用宏定义,定义对应的 PRINTLNF 实现自动换行的效果。
#define PRINTLNF(format, ...) printf(format"\n",__VA_ARGS__)
当没有变长参数时 __VA_ARGS__ 前面的逗号需要去掉。所以这里加上## 就可以解决这个问题。
#define PRINTLNF(format, ...) printf(format"\n", ##__VA_ARGS__)
如果想要打印对应文件名和函数名。
| 预定义宏 | 说明 |
|---|---|
__FILE__ |
当前文件名。 |
__LINE__ |
行号。 |
__FUNCTION__ |
函数。 |
#define PRINTLNF(format, ...) printf("("__FILE__": %d) %s: " \
format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)
在实现了PRINTLNF函数之后,经常需要打印变量。这里重新实现一下 PRINT_INT 。
#define PRINT_INT(value) PRINTLNF(#value":%d",value)